package com.mcp.converter.domain.checker;

import com.mcp.converter.shared.enums.CheckLevel;
import com.mcp.converter.shared.response.sql.SQLParseResult;

/**
 * 兼容性检测引擎接口
 * 负责分析SQL语法树，检测不兼容点
 */
public interface CompatibilityChecker {
    
    /**
     * 检测SQL语句的兼容性
     * @param parseResult SQL解析结果
     * @return 兼容性检测结果
     */
    CompatibilityResult check(SQLParseResult parseResult);
    
    /**
     * 检测SQL语句的兼容性
     * @param parseResult SQL解析结果
     * @param checkLevel 检测级别
     * @return 兼容性检测结果
     */
    CompatibilityResult check(SQLParseResult parseResult, CheckLevel checkLevel);
    
    /**
     * 获取不兼容点详情
     * @param incompatiblePoint 不兼容点
     * @return 不兼容点详情
     */
    IncompatibilityDetail getDetail(IncompatiblePoint incompatiblePoint);
}
